1.前言
2.环境
操作系统: CentOS6.5
MySQL:mysql-5.6.34
3.二进制包方式安装 MySQL
3.1 卸载 Linux 自带的 MySQL
Linux 系统自带了 MySQL 数据库,但是对于我们来说版本低了点,所以我们还是自己重新安装一遍 MySQL,为防止冲突,我们需要将原先版本的 MySQL 卸载。
- 查看 MySQL 及相关的 RPM 包
1 | rpm -qa | grep -i mysql |
- 卸载 MySQL
1 | yum -y remove mysql-5.1.71-1.el6 |
- 查看是否卸载
3.2 安装 MySQL
- 下载 MySQL
通过 wget
命令下载 MySQL 的 tar.gz 文件
- 解压 tar.gz 文件
1 | cd /usr/local |
- 重名文件夹
1 | mv mysql-5.6.34-linux-glibc2.5-i686/ mysql |
- 更改 mysql 文件夹属性
1 | cd mysql/ |
- 配置 my.cnf 文件
从 mysql 安装目录下拷贝一份 my.cnf 文件到 /etc/ 目录下,如果原先 /etc/ 存在 my.cnf 文件,则覆盖。
在 [mysqld]
中添加:
1 | basedir = /usr/local/mysql |
- 启动 MySQL 服务
1 | cp support-files/mysql.server /etc/init.d/mysqld |
- 验证 MySQL 服务是否开启
1 | ps -ef | grep mysqld |
4.配置主从环境
4.1 准备两台 Linux 环境服务器
分别在两台服务器上按上述步骤安装 MySQL。
4.2 配置主库
- 修改主库所在服务器上的 my.cnf 文件
1 | vi /etc/my.cnf |
在 my.cnf 文件中添加
1 | log_bin = master_mysql_bin |
该参数配置表示开启 MySQL 的二进制日志。
- 重启 MySQL 服务
1 | service mysqld restart |
- 查看 master 节点状态
1 | mysql> show master status; |
记录下红色标记处的信息,配置 slave 节点时需要。
- 主库中增加复制账号
1 | mysql> grant replication slave on *.* to 'repl'@'192.168.222.%' identified by 'replsafe'; |
4.3 配置从库
- 修改从库所在服务器上的 my.cnf 文件
1 | vi /etc/my.cnf |
在 my.cnf 文件中添加
1 | log_bin = slave_mysql_bin |
修改从库上的二进制日志和中继日志的命名规则
- 重启 MySQL 服务
1 | service mysqld restart |
- 连接到主库
1 | mysql> change master to |
- 开启复制
1 | start slave; |
- 查看从库复制状态
1 | mysql> show slave status\G |
通过 show slave status\G
显示出来的内容如上,则表示主备环境搭建成功。
- 验证复制功能
在主库上创建一个数据库,创建一张表,并想表中插入数据,查看从库能否有相同数据。
1 | mysql> create database master_slave; |
查看从库上是否有相同数据
1 | mysql> show databases; |
验证复制功能成功。
5.可能遇到的问题
问题一:
在启动复制功能时,查看 slave 节点状态发现:
原因:主库服务器上防火墙开启导致,从库连接不上主库
解决方案:在主库服务器上关闭防火墙 service iptables stop